home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
tool
/
conhlp03
/
padp_src
/
padpage.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-02-20
|
2KB
|
122 lines
/*
padpage.c
tab=8
*/
#define PROGRAM "パッド対応ページャー"
#define VERSION "V0.06"
#define FIRSTDATE "94/11/15"
#define FINALDATE "95/02/20"
#define USAGE " for FM-TOWNS コンソールモード\n" \
"Usage : padpage [-t[1-9]] [-s[wait]] [-5] filename"
#define MAIN
#include "calo.h"
#include "padpage.h"
#include <fcntl.h>
void main( int argc, char *argv[] ){ /* メイン */
int i;
char *name;
/* オプションスイッチセット */
if( argc == 1 ) usage( argv[0] );
for( i = 1 ; i < argc ; i++ ){
if( argv[i][0] == '-' || argv[i][0] == '/')
switch ( argv[i][1] ) {
case 'T':
case 't':
tabs = atoi(argv[i]+2);
tabs = ( tabs < 1 || tabs > 9 ) ? 9 : tabs;
break;
case 'S':
case 's':
sclw = ( sclw = atoi(argv[i]+2)) > 99 ? 99 : sclw ;
break;
case '5':
lines = 5;
maxdisp = 21;
break;
case 'H':
case 'h':
case '?':
usage(argv[0]);
default:
usage("無効なスイッチです.");
break;
}
else name = argv[i];
}
/* ファイルオープン */
if( ( fp = open( name, O_RDONLY ) ) < 0 ){
usage( argv[0] );
}
/* パッド初期化 */
padinit();
/* カーソル消去 */
cur( OFF );
/* 画面モード */
if( lines == 0 )
width( 20 );
/* メイン処理 */
{
int rr = OFF;
int j = 1;
int l,ll=0;
static const char *usfn = {
"\f"ESC_GRr " ファイル: %-s " ESC_reset
};
/* filename disp */
cprintf( usfn , name );
/* auto scroll */
sclw = 0;
if( sclw > 0 )
mline = ppgscroll('+',j);
/* オペレーション */
while( rr == OFF ){
dsppage( j,l = setline( j ) );
if( inkey() == NULL )
ll = setline( ( ll < l ) ? l : ll );
switch ( inkey() ) {
case RIGHT:
j += maxdisp/2;
break;
case LEFT:
j = 1;
break;
case UP:
j--;
break;
case DOWN:
j++;
break;
case ESCKEY: /* sellect */
rr = ON;
break;
case ' ':
case QUIT: /* B botan */
j -= maxdisp/2;
break;
case '\r':
case EXEC: /* A botan */
rr = ppgmenu( &j ); /* menu */
cprintf( usfn, name );
j = dsppage( j, -1 ); /* 再表示 */
default:
break;
}
if( j < 1 ) j = 1;
/*
*/
if( mp_eof && j > ll ) j = ll ;
}
}
close( fp );
/* カーソル復活 */
cur( ON );
width( 25 );
}